// profile.ts - 个人中心页面

Page({
  data: {
    currentRole: 'user' as 'user' | 'medical' | 'driver',
    userInfo: {
      avatarUrl: 'https://bai-ying.oss-cn-qingdao.aliyuncs.com/image/user_test/user_1.webp',
      nickName: '微信用户',
      email: 'albertflores@mail.com'
    },
    
    // 状态栏高度
    statusBarHeight: '44px'
  },

  /**
   * 页面加载
   */
  onLoad() {
    this.setStatusBarHeight()
    this.loadUserRole()
    this.loadUserInfo()
  },

  /**
   * 设置状态栏高度
   */
  setStatusBarHeight() {
    const windowInfo = (wx as any).getWindowInfo()
    const statusBarHeight = windowInfo.statusBarHeight || 44
    
    this.setData({
      statusBarHeight: statusBarHeight + 'px'
    })
  },

  /**
   * 页面显示时
   */
  onShow() {
    // 先加载角色（包含头像设置）
    this.loadUserRole()
    // 再加载用户信息（只更新昵称，不覆盖头像）
    this.loadUserInfo()
    
    // 更新自定义底部导航栏选中状态
    if (typeof this.getTabBar === 'function' && this.getTabBar()) {
      this.getTabBar().updateSelected(1)
    }
  },

  /**
   * 加载用户角色
   */
  loadUserRole() {
    try {
      const role = wx.getStorageSync('userRole')
      if (role) {
        this.setData({
          currentRole: role
        })
        this.setupRoleData(role)
      } else {
        // 如果没有角色信息，跳转到登录页
        wx.reLaunch({
          url: '/pages/login/login'
        })
      }
    } catch (e) {
      console.log('获取用户角色失败:', e)
      wx.reLaunch({
        url: '/pages/login/login'
      })
    }
  },

  /**
   * 设置角色相关数据
   */
  setupRoleData(role: 'user' | 'medical' | 'driver') {
    let userInfo: any

    switch (role) {
      case 'user':
        userInfo = {
          avatarUrl: 'https://bai-ying.oss-cn-qingdao.aliyuncs.com/image/user_test/user_2.webp',
          nickName: '张三',
          email: 'albertflores@mail.com'
        }
        break
        
      case 'medical':
        userInfo = {
          avatarUrl: 'https://bai-ying.oss-cn-qingdao.aliyuncs.com/image/user_test/user_3.webp',
          nickName: '医护李四',
          email: 'albertflores@mail.com'
        }
        break
        
      case 'driver':
        userInfo = {
          avatarUrl: 'https://bai-ying.oss-cn-qingdao.aliyuncs.com/image/user_test/user_4.webp',
          nickName: '司机某某',
          email: 'albertflores@mail.com'
        }
        break
        
      default:
        userInfo = {
          avatarUrl: 'https://bai-ying.oss-cn-qingdao.aliyuncs.com/image/user_test/user_1.webp',
          nickName: '微信用户',
          email: 'albertflores@mail.com'
        }
    }

    this.setData({
      userInfo
    })
  },

  /**
   * 加载用户信息
   */
  loadUserInfo() {
    // 尝试从存储中获取用户信息
    try {
      const storedUserInfo = wx.getStorageSync('userInfo')
      if (storedUserInfo && storedUserInfo.nickName) {
        // 只更新昵称，保留角色设置的头像
        this.setData({
          'userInfo.nickName': storedUserInfo.nickName
        })
      }
    } catch (e) {
      console.log('获取用户信息失败:', e)
    }
  },


  /**
   * 返回上一页
   */
  goBack() {
    wx.navigateBack({
      fail: () => {
        wx.switchTab({
          url: '/pages/index/index'
        })
      }
    })
  },

  /**
   * 显示更多选项
   */
  showMore() {
    wx.showActionSheet({
      itemList: ['设置', '退出登录'],
      success: (res) => {
        if (res.tapIndex === 0) {
          wx.showToast({
            title: '设置功能开发中',
            icon: 'none'
          })
        } else if (res.tapIndex === 1) {
          this.logout()
        }
      }
    })
  },

  /**
   * 显示关于我们
   */
  showAbout() {
    wx.showModal({
      title: '关于我们',
      content: '立体救援小程序致力于提供陆海空全方位的紧急医疗救援服务，为您的生命安全保驾护航。\n\n版本：v1.0.0',
      showCancel: false,
      confirmText: '我知道了'
    })
  },

  /**
   * 查看条款
   */
  showTerms() {
    wx.showModal({
      title: '服务条款',
      content: '立体救援服务条款：\n\n1. 用户须遵守国家法律法规\n2. 救援服务仅用于紧急医疗情况\n3. 用户需提供真实有效信息\n4. 平台保护用户隐私安全\n\n详细条款请访问官网查看。',
      showCancel: false,
      confirmText: '我知道了'
    })
  },

  /**
   * 编辑个人资料
   */
  editProfile() {
    wx.showToast({
      title: '功能开发中',
      icon: 'none',
      duration: 2000
    })
  },


  /**
   * 联系客服
   */
  contactService() {
    wx.showModal({
      title: '客服电话',
      content: '24小时客服热线：400-123-4567\n工作时间：全天24小时\n服务内容：救援咨询、技术支持、投诉建议',
      confirmText: '拨打电话',
      success: (res) => {
        if (res.confirm) {
          wx.makePhoneCall({
            phoneNumber: '400-123-4567',
            fail: () => {
              wx.showToast({
                title: '拨号失败',
                icon: 'none'
              })
            }
          })
        }
      }
    })
  },

  /**
   * 获取用户信息（如果用户未授权）
   * 注意：getUserProfile 已被微信废弃，建议使用头像昵称填写能力
   */
  getUserProfile() {
    wx.showToast({
      title: '该功能已升级',
      icon: 'none',
      duration: 2000
    })
    // wx.getUserProfile 已被废弃，推荐使用以下新方式：
    // 1. 使用 button open-type="chooseAvatar" 获取头像
    // 2. 使用 input type="nickname" 获取昵称
  },

  /**
   * 页面分享
   */
  onShareAppMessage() {
    return {
      title: '立体救援 - 陆海空全方位救援服务',
      path: '/pages/index/index',
      imageUrl: '../../images/share-image.jpg'
    }
  },

  /**
   * 退出登录
   */
  logout() {
    wx.showModal({
      title: '退出登录',
      content: '确定要退出当前账号吗？退出后需要重新选择角色登录。',
      confirmText: '确定退出',
      cancelText: '取消',
      success: (res) => {
        if (res.confirm) {
          this.performLogout()
        }
      }
    })
  },

  /**
   * 执行退出登录
   */
  performLogout() {
    wx.showLoading({
      title: '退出中...'
    })

    // 清除本地存储的用户信息
    try {
      wx.removeStorageSync('userRole')
      wx.removeStorageSync('userInfo')
      wx.removeStorageSync('loginTime')
      wx.removeStorageSync('userPhone')
    } catch (e) {
      console.log('清除存储失败:', e)
    }

    setTimeout(() => {
      wx.hideLoading()
      
      wx.showToast({
        title: '已退出登录',
        icon: 'success',
        duration: 1500
      })

      // 跳转到登录页
      setTimeout(() => {
        wx.reLaunch({
          url: '/pages/login/login'
        })
      }, 1500)
    }, 1000)
  },

  /**
   * 分享到朋友圈
   */
  onShareTimeline() {
    return {
      title: '立体救援 - 为生命安全保驾护航',
      imageUrl: '../../images/share-image.jpg'
    }
  }
})
